package com.softtown.modules.organization.dto;

import com.softtown.common.utils.PageUtils;
import com.softtown.common.validator.group.DefaultGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author: Dingyayong
 * @Date: 2019/6/4 10:17
 * @Description:
 */
@Data
@ApiModel(value = "公司员工")
public class CompOrgEmplDTO extends PageUtils implements Serializable {

    @ApiModelProperty(value = "员工id")
    private Long id;

    @ApiModelProperty(value = "公司id")
    @NotNull(message="{compId.require}")
    private Long compId;

    @ApiModelProperty(value = "员工号")
    private String emplNum;

    @ApiModelProperty(value = "真实姓名")
    @NotBlank(message = "{company.realname.require}", groups = DefaultGroup.class)
    private String realName;

    @ApiModelProperty(value = "头像")
    private String headUrl;

    @ApiModelProperty(value = "性别")
    private Integer gender;

    @ApiModelProperty(value = "邮箱")
    @NotBlank(message = "{company.email.require}", groups = DefaultGroup.class)
    private String email;

    @ApiModelProperty(value = "手机号")
    @NotBlank(message = "{company.mobile.require}", groups = DefaultGroup.class)
    private String mobile;

    @ApiModelProperty(value = "部门号")
    @NotNull(message = "{company.departmentId.require}", groups = DefaultGroup.class)
    private Long deptId;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "状态")
    private Integer status;

    @ApiModelProperty(value = "更新者")
    private Long updater;

    @ApiModelProperty(value = "更新时间")
    private Date updateDate;

    @ApiModelProperty(value = "更新时间戳")
    private String updateTimestamp;

    @ApiModelProperty(value = "逻辑删除")
    private Integer isDeleted;

    @ApiModelProperty(value = "角色id集合")
    private List<Long> roleIdList;

    @ApiModelProperty(value = "角色id")
    private List<Long> roleId;

    @ApiModelProperty(value = "用户名")
    private String username;

    @ApiModelProperty(value = "语言")
    private String language ;

    @ApiModelProperty(value = "密码")
    private String password;

    @ApiModelProperty(value = "确认密码")
    private String comfirmPassword;

    @ApiModelProperty(value = "用户id")
    private Long userId;

    @ApiModelProperty(value = "参数")
    private String pram;

    @ApiModelProperty(value = "岗位id集合")
    private List<Long> posnIdList;

    @ApiModelProperty(value = "员工部门变更时原ID")
    private Long oldDeptId;

    @ApiModelProperty(value = "部门id(变更前)")
    private Long deptIdOld;

    @ApiModelProperty(value = "部门id(变更后)")
    private Long deptIdNew;

    @ApiModelProperty(value = "员工id")
    private Long emplId;
}
